/*
    curlplusplus - a c++ wrapper around libcurl
    Copyright (C) 2012  Francesco "Franc[e]sco" Noferi (francesco1149@gmail.com)

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public
    License along with this library; if not, write to the
    Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
    Boston, MA  02110-1301, USA.
*/

#include "curlpp.hpp"

namespace curlpp
{
    /**
     * Represents a string list. Wraps curl_slist.
     */
    class slist
    {
    public:
        /**
         * Default constructor.
         */
        slist() throw();

        /**
         * Default destructor.
         */
        virtual ~slist() throw();

        /**
         * Appends a string to the list.
         *
         * @param string the string that will be appended.
         * @throw curlpp::exception an exception that describes the general cause of the error.
         */
        void append(const char *string) throw(const exception &);

        /**
         * Returns a pointer to the string list to be used in easy::setopt().
         * @return a pointer to the string list. NULL if empty.
         * @see easy::setopt()
         */
        curl_slist *data();

    protected:
        curl_slist *list; /**< Internal slist pointer */
    };
}
